Skip to content

Conversation

@kayon
Copy link

@kayon kayon commented Dec 29, 2025

Add Reroll to Plugin Store

A high-performance memory scanning plugin for the Steam Deck, inspired by Memory Deck.

Why Reroll?

I have been a long-time user of Memory Deck—it is a fantastic tool that has saved me countless hours.

However, as my needs grew, I found the scanning speed and UI flow could be further optimized. Reroll was created to bridge that gap, focusing on performance and a streamlined user experience.

Key Features

  • 🚀 Ultra-Fast Scanning: Millisecond-level scanning that delivers results before you can even blink, powered by memscan, a high-performance engine custom-built for the Steam Deck.
  • 🎯 Smart Process Identification: Automatically detects the currently active game—eliminating the need to scroll through messy process lists or risk selecting the wrong target.
  • 📱 Compact Interface: A streamlined, single-pane UI optimized for handheld play; focused on speed and efficiency without the need for scrolling.

Task Checklist

Developer

  • I am the original author or an authorized maintainer of this plugin.
  • I have abided by the licenses of the libraries I am utilizing, including attaching license notices where appropriate.

Plugin

  • I have verified that my plugin works properly on the Stable and Beta update channels of SteamOS.
  • I have verified my plugin is unique or provides more/alternative functionality to a plugin already on the store.

Backend

  • Yes: I am using a custom backend other than Python.
  • Yes: I am using a tool or software from a 3rd party FOSS project that does not have it's dependencies statically linked.
  • Yes/No: I am using a custom binary that has all of it's dependencies statically linked.

Community

  • I have tested and left feedback on two other pull requests for new or updating plugins.
  • I have commented links to my testing report in this PR.

Testing

  • Tested by a third party on SteamOS Preview update channel.

@kayon kayon requested a review from a team as a code owner December 29, 2025 17:03
@github-actions github-actions bot added the plugin-addition Adding a plugin to the Plugin Store label Dec 29, 2025
@github-actions
Copy link

Issues Found

  • Both testing boxes are present in your description. Please remove one of them per the Markdown comment above the testing section.

Next Steps

  1. If we found any issues above, please edit your pull request description to resolve them and leave a comment saying you've done so.
  2. For the quickest review, please see the Community section of the pull request template for how you can help other developers.
  3. Once your description is correct, a maintainer will review your pull request as soon as possible.

Thank you for your contribution! If you need any help, please reach out on our Discord server. ❤️

@kayon
Copy link
Author

kayon commented Dec 29, 2025

Technical Note on Backend: The plugin utilizes a pre-compiled Go binary (memscan.so) to ensure high-performance memory operations. It is dynamically linked against Glibc 2.33 using the Zig toolchain. This specific version was chosen to ensure maximum compatibility across SteamOS Stable, Beta, and Preview channels while keeping the plugin footprint small.

@EMERALD0874
Copy link
Member

I have been a long-time user of Memory Deck [...] I found the scanning speed and UI flow could be further optimized. Reroll was created to bridge that gap

Have you considered making a PR to Memory Deck? Adding multiple plugins to the Plugin Store that serve the same purpose usually goes against our policies. Memory Deck should either be refusing a PR or inactive, in which case we would still prefer someone take over maintainership rather than an entirely new plugin being released. Updating a plugin is much easier and leads users to a better experience without having to learn about and install a new plugin.

@kayon
Copy link
Author

kayon commented Dec 29, 2025

Subject: Clarification on Reroll vs. Memory Deck

Thank you for the feedback. I would like to clarify why Reroll is a fundamental departure from Memory Deck rather than just a functional duplicate.

Massive Performance Gap: Memory Deck acts as a wrapper for scanmem, a legacy C tool. In my testing, a single search can take upwards of 10 seconds. I have developed a custom backend specifically for SteamOS that achieves search speeds hundreds of times faster. We are comparing "seconds" to "milliseconds," which completely changes the user experience from "waiting" to "instant."

Tailor-made for Steam Deck: Unlike a general wrapper for an old CLI tool, Reroll’s backend and UI are built from the ground up for the Steam Deck’s hardware and controller-first navigation. The UI isn't just "different"—it is designed for high-frequency mobile use.

Technical Architecture: Since I’ve rewritten the entire logic in Go with a custom scanning engine (as opposed to Python/C-wrapper), merging this into Memory Deck would essentially mean deleting their entire codebase and replacing it with mine. Given these architectural differences, maintaining it as a separate, modern alternative is more logical than trying to patch a legacy project.

I believe Reroll offers the performance and UX that Steam Deck users expect in 2025, and I am committed to its long-term maintenance. I hope you can reconsider the PR based on these significant technical improvements.

@EMERALD0874
Copy link
Member

A few questions before we review anything:

  1. Did you use LLMs (ex. ChatGPT, DeepSeek, GitHub Copilot) to develop any part of this code?
  2. Did you use code from any other repositories in the development of Reroll, including decky-plugin-database or memory-deck?
  3. Did you ask CameronRedmore if they'd be interested in a refactor to make the code closer to Reroll? Their README states "I openly welcome any PRs to clean up the code, refactor, and just make this... not so garbage". I imagine they would be open to any PRs you would make.
  4. Can you provide data that proves your plugin is significantly faster than Memory Deck?

@kayon
Copy link
Author

kayon commented Dec 30, 2025

  1. No.

  2. No. Reroll was developed from scratch. While I studied the existing plugin ecosystem to understand Decky Loader's integration, the codebase for both the frontend and the backend is original and does not utilize code from memory-deck or other plugin repositories.

  3. I have considered this, but as the author noted, "This plugin is a mess. I don't like C, I don't like Python and I don't like React." My experience with memory-deck was limited to attempting minor fixes for its wrapper, but the core issue lies in its reliance on a legacy C library (scanmem) which I am not equipped to rewrite.
    More importantly, Reroll is not just a refactor—it is a complete paradigm shift. memory-deck is a wrapper around an old CLI tool; Reroll is a custom-built memory engine written in Go. To "refactor" memory-deck into Reroll would essentially mean deleting 100% of their code and replacing it with mine, which is effectively a new project. My goal was to bring a "Cheat Engine-like" speed and experience to Steam Deck, which required starting from zero.

  4. I respect the work done on Memory Deck, but I believe the community deserves a modern, high-performance alternative that fully leverages the Deck's capabilities.

MemoryDeck_VS_Reroll.mp4

@EMERALD0874
Copy link
Member

EMERALD0874 commented Jan 2, 2026

Sorry, I misspoke in my last review. Did you use decky-plugin-template when developing your plugin? I meant to write that instead of the plugin database.

If you did, you need to include the default BSD 3-Clause License beneath your GPL licensing, as that's what Decky chose to use for its plugin template, and your plugin is considered a derivative work if it relied on template code.

@HeyItsWaters
Copy link
Contributor

as the current "maintainer" for Memory Deck I fully support @kayon keeping Reroll as a separate plugin.

I haven't had time to test Reroll, but assuming it outperforms Memory Deck at everything, I'll probably retire it from the decky store once Reroll gets traction. or at the very least, push one more update that just shows a message to switch to Reroll.

@kayon
Copy link
Author

kayon commented Jan 3, 2026

Thank you for the reminder. I have updated the LICENSE file to include the original BSD 3-Clause License from the decky-plugin-template beneath my GPL license to ensure full compliance. You can check the latest commit.

@kayon
Copy link
Author

kayon commented Jan 6, 2026

@EMERALD0874 PTAL, thanks!

@kayon
Copy link
Author

kayon commented Jan 8, 2026

@EMERALD0874
Copy link
Member

assuming [Reroll] outperforms Memory Deck at everything, I'll probably retire it from the decky store once Reroll gets traction.

@HeyItsWaters Assuming this is still your plan, I believe the best course of action would be to allow @kayon to take over the Memory Deck name and rebrand Reroll as a complete rewrite of Memory Deck in a 2.0,0 version. Updating your plugin to add a deprecation message doesn't sound like the best experience for users when we could just resolve this from the developer side now.

Is this something both you and @kayon would be okay with? If so, the following changes would need to be made:

  1. Reroll changes its repo name to "memory-deck".
  2. Plugin name and other branding should be made the same as Memory Deck.
  3. Instead of adding the new repo as a submodule, it should replace the existing one that @HeyItsWaters has been maintaining.

@EMERALD0874 PTAL, thanks!

Please avoid mentioning individual members of the Decky Team, as each of us only reviews plugins once a week. Your submission may be skipped because reviewers think it requires knowledge that only the person you mentioned has.

Copy link
Member

@EMERALD0874 EMERALD0874 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM for testing as Reroll for now. Succession of Memory Deck still TBD, so not formally approving this yet

@kayon
Copy link
Author

kayon commented Jan 11, 2026

Thank you for the suggestion and for looking into this. I understand the goal of reducing redundancy, but I believe keeping both projects separate is the better course of action, at least until Reroll reaches full maturity. Here are a few reasons why:

  • Completely Independent Codebase: It is important to clarify that Reroll’s backend, memscan, was built entirely from scratch. It does not reference or inherit any code from Memory Deck (scanmem). They are structurally and architecturally distinct.
  • Performance-Driven Iteration: My primary focus is extreme performance optimization. This project has already undergone multiple major refactors and "ground-up" rewrites to perfect the algorithms. During this high-intensity development phase, there is always a risk of scan inaccuracies. Memory Deck serves as a stable, proven alternative during this period.
  • User Choice and Cross-Verification: Keeping both allows users to choose the tool that fits their needs. Furthermore, it provides a vital debugging benchmark. If Reroll fails to find a specific value, a user (or even I) can cross-check with Memory Deck. If Memory Deck finds it, I know exactly where I need to improve my algorithm.

In short, Reroll is a high-performance experiment rather than a direct successor. Forcing a rebrand or replacement right now might disrupt users who rely on the stability of the original Memory Deck. I would prefer to let them coexist so users have a fallback while Reroll continues to evolve.

@HeyItsWaters I’d love to hear your thoughts on this as well. Are you comfortable with keeping them as two separate projects for the time being?

@kayon
Copy link
Author

kayon commented Jan 11, 2026

Currently, my most urgent need is user validation. I need more real-world feedback to determine the direction of future development. Once these core features are proven stable in the hands of users, I can move forward with implementing more advanced ideas.

To be honest, the review process has been quite lengthy (it has been 2 weeks now). During this waiting period, I have already completed another major algorithmic refactor. I believe the current version is now stable, and I have paused the development of new features specifically to wait for this release. My priority right now is simply to get this into the hands of users so I can begin collecting the data I need for the next phase.

@HeyItsWaters
Copy link
Contributor

@HeyItsWaters I’d love to hear your thoughts on this as well. Are you comfortable with keeping them as two separate projects for the time being?

I'm fine either way - however I should point out that I'm just the current maintainer, @CameronRedmore is still the owner of Memory Deck. I know they haven't been active in the scene but we might check in with them if they have thoughts on it.

@tikh-iv
Copy link

tikh-iv commented Jan 12, 2026

Works in stable version

@EMERALD0874
Copy link
Member

@tikh-iv This is not a valid testing report. Please use the format posted here.

@kayon
Copy link
Author

kayon commented Jan 13, 2026

Furthermore, there is a specific edge case: if a user manually adds an unowned Steam game, Steam may identify it as being in the library, leading to an AppID mismatch upon launch. In this rare scenario, the process list remains empty. While I could relax the process identification logic to accommodate this, it further proves my point: retaining Memory Deck and allowing both projects to coexist makes sense, as it provides a reliable fallback for these unusual circumstances.

Strictly speaking, this isn't a bug, but I will implement a fix in the next update to ensure maximum compatibility. In the meantime, I suggest testing with a wider variety of games.

@hahamy
Copy link

hahamy commented Jan 13, 2026

Plugin Testing Report

Installed Plugins

  • SteamGridDB - 1.7.0-xxxxxx
  • ProtonDB Badges - 1.1.0
  • KDE Connect - 0.1.0-1
  • CSS Loader - 2.1.2
  • Reroll - 0.2.1-xxxxxx

Specifications

  • SteamOS 3.7.17_20251027.1 (Stable)
  • Steam 1763795278 (Stable)
  • Decky 3.2.1 (Stable)

Issues

Has the following major blocking issue(s): None
Has the following minor non-blocking issue(s): None

Summary

I’ve been messing around with the pre-release version for a while now, even before it hit the Testing Store. I’ve tried it on a bunch of games, and honestly, the 'out-of-the-box' experience is great—it just picks up whatever game is running without me having to tweak any settings. Plus, getting Cheat Engine-like search speeds on the Steam Deck is pretty mind-blowing. It feels awesome to use.

@steam3d
Copy link
Contributor

steam3d commented Jan 13, 2026

Plugin Testing Report

Installed Plugins

MagicPods- 2.0.10
Reroll - 0.2.1-5931f83

Specifications

OS Version 3.7.19 (Preview)
Steam Version 1767909714 (Preview)
Decky 3.2.1 (Preview)

Issues

Has the following major blocking issue(s): None
Has the following minor non-blocking issue(s): None

Summary

I was very confused about how to apply changes because pressing A did nothing (I suppose the focus changed), but I figured it out and everything works well. I would prefer to have a button labeled "Apply" rather than clicking A. Or add a help page with short instructions on how to do it.

In general, everything perfect.

@steam3d steam3d mentioned this pull request Jan 13, 2026
7 tasks
@EMERALD0874
Copy link
Member

Holding off on merging this until the Decky team has discussed whether we're comfortable having Reroll/Memory Deck as separate plugins or not with the team. Memory Deck pushing an update saying to uninstall because there's a better plugin or having two plugins that accomplish the same purpose from an end-user perspective isn't ideal.

@HeyItsWaters
Copy link
Contributor

@EMERALD0874 I don't want to hold up Kayon's deployment - I officially vote we allow this new plugin.

I will retire memory-deck once ReRoll gains traction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin-addition Adding a plugin to the Plugin Store

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants